package com.tedu.api.date;

import java.util.Calendar;
import java.util.Date;

/**
 * java.util包   <--屈从于
 * Calendar抽象类替换Date(设计缺陷)     格里高利历法：公历
 * 替换方法
 * 1.时间计算分量：根据毫秒数换算时间：年、月、日  时、分、秒  蔡、徐、坤
 * 2.设计时间分量: 修改年、月、日 时分秒，底层用毫秒进行计算结果
 * 3.增加/减少时间分量：增加/减少指定毫秒数
 */
public class CalendarAPI {
    public static void main(String[] args) {
        //抽象类---匿名内部类【提供静态方法替代new，这个静态方法封装new功能】
        Calendar cl = Calendar.getInstance();//导java.util的那个(C.有java.util的那个)Calendar.getI
        //获取年月日   get方法：获取年月日  时分秒
        int year = cl.get(Calendar.YEAR);//get方法中传入静态属性    ()内Calendar.Y...
        int month = cl.get(Calendar.MONTH) + 1;//月
        int day = cl.get(Calendar.DATE);//天
        int hour = cl.get(Calendar.HOUR);//时
        int minute = cl.get(Calendar.MINUTE);//分
        int second = cl.get(Calendar.SECOND);//秒
        int millisecond = cl.get(Calendar.MILLISECOND);//毫秒
        System.out.println("公元" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒" + millisecond + "毫秒");
        //快速格式化代码快捷键:ctrl+shift+l
        //设置时间分量：set(修改时间,绝对时间)方法  底层使用毫秒数
        //需求:当前时间调整为明年的今天
        cl.set(Calendar.YEAR, 2025);
        Date d = cl.getTime();//获取时间，返回值Date类
        System.out.println("10000年后的今天是：" + d + "赛博纪元");
        //需求:2023   【第三个增加减少时间毫秒数计算】
        //set()方法 (改变时间，相对时间)   相对时间用add   绝对时间用get
        cl.add(Calendar.YEAR, -1);
        Date c = cl.getTime();//获取时间，返回值Date类
        System.out.println("-10000年后的今天是：" + c + "猴纸时代");

        //获取当前月份总天数【最大天数】
        int max=cl.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("月份最大："+max);


    }
}
